/**
 * Copyright © 1998-2020, Glodon Inc. All Rights Reserved.
 */
package reactor2;

import java.util.concurrent.ConcurrentLinkedQueue;

/**
 * 分离器
 * <p>
 * 此处填写类说明
 * </p>
 * 
 * @author dujl
 * @since jdk1.6 2020年8月3日
 */

public class Demultiplexer<E> {

	protected ConcurrentLinkedQueue<E> msgQueue = new ConcurrentLinkedQueue<>();

	/***
	 * TODO
	 * 
	 * @param e
	 * @return
	 */
	public boolean addMsg(E e) {
		return msgQueue.add(e);
	}

	/***
	 * 清除事件队列
	 */
	public void cleanMsg() {

		msgQueue.clear();
	}

	/***
	 * TODO
	 * 
	 * @param e
	 */
	public void remove(E e) {
		msgQueue.remove(e);
	}

	public E getMsg() {

		return msgQueue.poll();
	}

	/***
	 * TODO
	 * 
	 * @return
	 */
	public boolean select() {
		if (!msgQueue.isEmpty())
			return true;
		return false;
	}
}
